Microcomputers are sophisticated, general purpose logic devices which can be programmed to perform a wide variety of useful control functions in industrial and communications equipment, large-scale and medium-scale computer peripheral and terminal hardware, automobiles and other transportation media, amusement and educational devices, and the like. Generally, an entire spectrum of microcomputers is presently available in the commercial marketplace. As the speed of operation, or throughput, of a microcomputer increases, the more valuable and more versatile the microcomputer becomes, since it is able to control a given operation more efficiently and more accurately, or to control a greater number of operations simultaneously, or to control operations requiring relatively fast response times.
The throughput of any given microcomputer is a function of, among other things, the number of machine cycles required to execute a given set of instructions. In the course of designing any computer system, and in particular a microcomputer, a set of instructions is selected which will provide the anticipated programming requirements for the projected market in which the computer system is to be used. The microprocessor, or processor component of a single-chip microcomputer, executes each instruction as a sequence of machine cycles, with the more complex instructions consuming a greater number of machine cycles. The operation of the internal registers and gating circuitry of the microprocessor is synchronized by means of a master clock signal applied to the microprocessor. The master clock signal may actually comprise two or even four clock components; i.e., the microprocessor clock may be two-phase or four-phase. During the basic clock cycle known as the machine cycle, a number of internal processor-related operations may take place simultaneously, including the transfer of digital information from a bus to a register or vice versa, between certain registers, from an address or data buffer to a bus or vice versa, and so forth, or the individual conductors of a bus may each be set to a predetermined logic level, or the contents of a register may be set to a predetermined logic level. The more processor operations occurring within an individual machine cycle the fewer the number of machine cycles required for the execution of a particular instruction. Thus it is desirable to maximize to the extent possible the number of internal processor operations occurring within a given machine cycle.
The MC6800 microprocessor commercially available from Motorola, Inc. is a prior art microprocessor device which has found wide commercial acceptance. The aforementioned microprocessor includes a number of features intended to minimize the number of machine cycles per instruction, including those features described in U.S. Pat. Nos. 4,030,079, 4,016,546, 4,040,035, 4,032,896, and 3,962,682. While the throughput of the MC6800 has been found satisfactory for many applications, any significant improvement in the throughput of such microprocessor would enhance its commercial acceptance for the reasons given above.
In addition to the need to increase microprocessor throughput by minimizing the number of machine cycles per instruction execution, it is desirable to provide a microprocessor with structure which facilitates the addition of new instructions to the microprocessor instruction set.